c0d3.r3d
Goto Top

Verzeichnisüberwachung auf Änderung unter Linux SMB mit Dateirevision

Mahlzeit,

dieses Thema ist schon des öfteren angesprochen worden, ich suche aber eine konkrete Möglichkeit der Umsetzung.

Gegeben ist ein Fileserver auf Debian Basis, welcher über SMB für Windows Clients Freigaben anbietet.
Die Freigaben enthalten Ordner und Dateien, von KB bis in den zweistelligen GB-Bereich.
Wird eine Datei geändert, so soll in einem anderen Verzeichnis die Datei vor der Veränderung abgelegt werden (ähnlich einer Dateirevision).

Das ganze soll automatisiert Ablaufen, und jede Veränderung aufzeichnen, sodass jeder Stand wiederhergestellt werden kann.
Bei Dateien im KB Bereich sicherlich kein Problem, bei größeren Dateien von 20-30 GB stell ich mir dies schon schwerer vor. Hier müsste in der Zeit, wo die Datei kopiert wird (zur Revision) der Server für den Schreibzugriff gesperrt werden.

Idee von mir: nicht die ganze Datei zu sichern, sondern in Blöcke aufzuteilen und die veränderten Blöcke zu speichern. Unter Linux sicherlich kein Problem, nur wie ist mir noch unbekannt.

Gibt es für soetwas schon fertige Software oder Skriptansätze?
Es soll kein Backupkonzept hiermit erstellt werden, sondern eine Dateirevision um Änderungen nachzuvollziehen.

VG und einen sonnigen Sonntag!

Content-Key: 92711816775

Url: https://administrator.de/contentid/92711816775

Printed on: May 23, 2024 at 14:05 o'clock

Member: hempel
hempel May 12, 2024 updated at 12:51:00 (UTC)
Goto Top
Also entweder du nutzt ein System ala Git mit CheckIn/CheckOut inkl. Versionsverwaltung was aber für Otto-Normaluser eher schwer verständlich ist und du sie erst schulen musst, oder aber du setzt ein entsprechendes Dateisystem im Unterbau ein das CopyOnWrite verwendet und eingebaute Snapshot-Technik bietet, wie bspw. ZFS. Damit erstellst du automatisierte Snapshots entweder regelmäßig per Cron oder auch per Trigger wie mit den inotify Tools.


Bei CopyOnWrite wird bei jeder Änderung nämlich eine Kopie der Datei angelegt und die Änderung nur an der Kopie vorgenommen und anschließend die Metadaten aktualisiert.

Es gibt aber auch eine manuelle Variante die mit Hardlinks (cp und rsync) arbeitet, dabei wird für einen Snapshot mit cp ein Klon mit Hardlinks erzeugt der anschließenden mit rsync aus der Datenquelle bespielt wird. Dabei werden dann nur die tatsächlich geänderten Dateien in diesem Klon ersetzt was erheblich Speicher spart.
Rsnapshot macht sowas bspw. als fertige Software, lässt sich aber auch mit ein paar Zeilem Bash selbst skripten.

Gruß
Member: Lochkartenstanzer
Lochkartenstanzer May 12, 2024 updated at 15:42:48 (UTC)
Goto Top
Moin,

Du brauchst ein versioning filesystem wie z.B. NILFS, wenn es nicht jedesmal ein komplettes Snapshot des Filesystems getriggert werden soll.

lks